mod file_io;

use crate::errors::*;
// IOManger  抽象文件IO管理接口  可以支持不同的文件IO方式 目前支持标准文件 IO

pub trait IOManager: Send + Sync {
    // Read  从文件给定位置读取对应的数据
    fn read(&self, bytes: &mut [u8], offset: u64) -> Result<usize>;
    // Write  向文件给定位置写入数据
    fn write(&self, bytes: &[u8]) -> Result<usize>;
    // Close  关闭文件
    fn close(&self) -> Result<()>;
    // sync 同步文件
    fn sync(&self) -> Result<()>;
}
